Firestore Permissions এবং Role-Based Access Control

Web Development - ফায়ারবেস (Firebase) - Firebase Authentication এবং Firestore ইন্টিগ্রেশন
325

Firebase Firestore একটি NoSQL ডাটাবেস, যা অ্যাপ্লিকেশন ডেভেলপমেন্টে ডেটা স্টোর এবং রিট্রিভ করার জন্য ব্যবহৃত হয়। Firestore ডেটা সিকিউরিটি এবং প্রাইভেসি নিশ্চিত করতে Security Rules এবং Role-Based Access Control (RBAC) ব্যবহৃত হয়। এই সিস্টেমগুলির মাধ্যমে আপনি কন্ট্রোল করতে পারেন, কোন ব্যবহারকারী কীভাবে এবং কখন ডেটাতে অ্যাক্সেস পাবেন।


Firestore Permissions কি?

Firestore Permissions হল ডেটা অ্যাক্সেসের জন্য নির্দিষ্ট নীতিমালা এবং বিধিনিষেধ। Firebase Firestore এ, ডেটা অ্যাক্সেসকে নিরাপদ রাখার জন্য Firestore Security Rules ব্যবহৃত হয়, যা নিয়ন্ত্রণ করে ব্যবহারকারীরা কীভাবে ডেটা পড়তে, লিখতে, এবং মুছতে পারবে।

Firestore Permissions একটি সার্বিক সিকিউরিটি মেকানিজম, যা ডেটা স্টোরেজ, রিড, এবং রাইট অ্যাকশনসমূহের অনুমতি এবং বিধিনিষেধ নির্ধারণ করে। এটি আপনার অ্যাপ্লিকেশনে ডেটার নিরাপত্তা এবং প্রাইভেসি রক্ষা করতে সহায়তা করে।

Firestore Permissions এর মূল উপাদান:

  1. Read Permission: কোন ব্যবহারকারী বা রোল ডেটা পড়তে পারবে।
  2. Write Permission: কোন ব্যবহারকারী বা রোল ডেটা আপডেট বা তৈরি করতে পারবে।
  3. Delete Permission: কোন ব্যবহারকারী বা রোল ডেটা মুছে ফেলতে পারবে।
  4. Update Permission: কোন ব্যবহারকারী বা রোল ডেটা আপডেট করতে পারবে।

Firestore Security Rules

Firestore Security Rules আপনার ডাটাবেসের উপর অ্যাক্সেস কন্ট্রোল নির্ধারণ করে। এটি একটি শক্তিশালী সিস্টেম, যা আপনাকে কাস্টমাইজড অনুমতি সেট করতে দেয়। Firestore Rules এ আপনাকে নির্দিষ্ট করতে হবে, কে কী করতে পারবে এবং কোন শর্তে তা করবে।

Firestore Security Rules এর গঠন

Firestore security rules সাধারণত allow কিওয়ার্ড দ্বারা নির্ধারিত হয়, যা ইউজারদের কীভাবে ডেটাতে রিড, রাইট, আপডেট বা ডিলিট করতে পারবে তা কন্ট্রোল করে।

উদাহরণ:

service cloud.firestore {
  match /databases/{database}/documents {
    // সকল ব্যবহারকারী কেবল 'users' ডকুমেন্ট পড়তে পারবে
    match /users/{userId} {
      allow read: if request.auth != null; // শুধু অথেনটিকেটেড ব্যবহারকারীরা পড়তে পারবে
      allow write: if request.auth.uid == userId; // শুধু নিজের ডেটা আপডেট করতে পারবে
    }
  }
}

এখানে, request.auth ব্যবহারকারীর অথেনটিকেশন অবস্থা চেক করে এবং ব্যবহারকারী কেবল তার নিজস্ব ডেটাতে অ্যাক্সেস পেতে পারে।

Firestore Security Rules কনফিগার করার জন্য কিছু সাধারাণ নিয়ম:

  1. Authentication: নিরাপত্তা নিশ্চিত করতে ব্যবহারকারীকে অ্যাথেনটিকেট করা আবশ্যক।
  2. User-Based Rules: ব্যবহারকারী আইডি বা রোল অনুযায়ী কাস্টম ডেটা অ্যাক্সেস নিয়ন্ত্রণ করা যেতে পারে।
  3. Field-Level Security: শুধুমাত্র নির্দিষ্ট ফিল্ড বা ক্ষেত্রগুলিতে অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন।
  4. Read/Write Permissions: নির্দিষ্ট ডকুমেন্ট, কলেকশন বা ফিল্ডের উপর পাঠন ও লেখার অনুমতি দেওয়া।

Role-Based Access Control (RBAC) Firestore এ

Role-Based Access Control (RBAC) একটি সিকিউরিটি মডেল, যা ব্যবহৃত হয় অনুমতি নির্ধারণ করার জন্য একটি নির্দিষ্ট রোল (যেমন: অ্যাডমিন, ইউজার, গেস্ট) অনুসারে। RBAC ব্যবহারের মাধ্যমে আপনি Firestore ডেটাবেসে নির্দিষ্ট ব্যবহারকারীদের নির্দিষ্ট রোল অনুযায়ী বিভিন্ন পর্যায়ে অ্যাক্সেস প্রদান করতে পারবেন।

Firebase এ, আপনি RBAC বাস্তবায়ন করতে পারেন Firestore Security Rules ব্যবহার করে। প্রতিটি ব্যবহারকারীর জন্য একটি নির্দিষ্ট রোল নির্ধারণ করে এবং রোল অনুযায়ী তাদের ডেটায় কী ধরনের অ্যাক্সেস থাকবে তা নিয়ন্ত্রণ করা যায়।

Firebase Firestore এ RBAC এর জন্য উদাহরণ:

ধরা যাক, আমাদের একটি অ্যাপ রয়েছে যেখানে Admin এবং User দুই ধরনের রোল রয়েছে। এই রোল অনুযায়ী, Admin কেবল সমস্ত ডেটা পড়তে, লিখতে এবং মুছতে পারবে, কিন্তু User কেবল তার নিজস্ব ডেটা পড়তে এবং আপডেট করতে পারবে।

service cloud.firestore {
  match /databases/{database}/documents {
    // Admin রোলের জন্য
    match /users/{userId} {
      allow read, write, delete: if request.auth.token.role == 'admin';
    }

    // সাধারণ ব্যবহারকারীর জন্য
    match /users/{userId} {
      allow read, write: if request.auth.uid == userId; // নিজের ডেটা পড়া এবং আপডেট করা যাবে
    }
  }
}

এখানে, Admin রোলযুক্ত ব্যবহারকারী সমস্ত ডেটাতে অ্যাক্সেস পাবে, কিন্তু User কেবল তার নিজস্ব ডেটাতেই পরিবর্তন করতে পারবে।

RBAC এর সাহায্যে আপনি নিম্নলিখিত কাস্টম রোল তৈরি করতে পারেন:

  1. Admin: সমস্ত ডেটাতে পূর্ণ অ্যাক্সেস (পড়ার, লেখার, মুছার) অনুমতি।
  2. Editor: ডেটা সম্পাদনা করতে পারবে, কিন্তু মুছতে পারবে না।
  3. Viewer: কেবল ডেটা পড়তে পারবে, কিন্তু কোন পরিবর্তন করতে পারবে না।

Firestore এ RBAC বাস্তবায়ন করার প্রক্রিয়া

১. ব্যবহারকারীদের রোল নির্ধারণ করা

প্রথমে আপনাকে ব্যবহারকারীদের রোল নির্ধারণ করতে হবে। আপনি Firebase Authentication ব্যবহার করে ব্যবহারকারীদের রোল অ্যাসাইন করতে পারেন। উদাহরণস্বরূপ, আপনি ব্যবহারকারীর রোলকে তাদের Firestore ডকুমেন্টে স্টোর করতে পারেন।

২. Security Rules কনফিগার করা

যতবারই আপনি Firestore Security Rules তৈরি করবেন, আপনাকে রোল অনুযায়ী নির্দিষ্ট পছন্দের অ্যাক্সেস কনফিগার করতে হবে। উদাহরণস্বরূপ, "Admin" রোলের জন্য লিখতে এবং মুছতে পারবে, কিন্তু "User" শুধুমাত্র রিড এবং আপডেট করতে পারবে।

৩. Custom Claims এবং Token ব্যবহার করা

Firebase Authentication এ Custom Claims ব্যবহার করে আপনি ব্যবহারকারীর রোল নির্ধারণ করতে পারেন। এর মাধ্যমে আপনি Firebase Firestore Security Rules-এ এই রোলগুলিকে যাচাই করতে পারবেন।

// Firebase Authentication এ Custom Claims সেট করা
admin.auth().setCustomUserClaims(uid, { role: 'admin' }).then(() => {
  // Claims সফলভাবে সেট হয়েছে
});

এখন, আপনি Firestore Rules এ request.auth.token.role ব্যবহার করে রোল যাচাই করতে পারবেন।


সারাংশ

Firestore Permissions এবং Role-Based Access Control (RBAC) ব্যবহার করে আপনি Firebase Firestore ডেটাবেসে নিরাপত্তা নিশ্চিত করতে পারেন। Firestore Security Rules এর মাধ্যমে আপনি ব্যবহারকারী ও রোল অনুযায়ী ডেটার অ্যাক্সেস কন্ট্রোল করতে পারবেন। RBAC ব্যবহারের মাধ্যমে আপনি অ্যাপ্লিকেশনে বিভিন্ন রোল (যেমন Admin, Editor, Viewer) তৈরি করে সঠিকভাবে ব্যবহারকারীদের অ্যাক্সেস নিয়ন্ত্রণ করতে পারবেন, যা ডেটার নিরাপত্তা এবং প্রাইভেসি রক্ষা করতে সহায়ক।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...